Basics

The ability to work with different parsers simultaneously makes SNiFF+ a truly multi-platform, multi-language development environment. Either a single parser can be used for projects which contain only source files of a specific language, or several parsers can be simultaneously employed for handling multi-language projects seamlessly. All project files can be edited, browsed and managed within a consistent user interface, resulting in higher productivity and efficiency. Multiple parsers can run simultaneously, they directly connect to the

sniff core process.

Parsing is handled by SNiFF+ in the following way:

- When parsing a file, SNiFF+ loads the appropriate parser as specified by the settings in the File Types view of the Project Attributes dialog window.
- SNiFF+ sends a request to the parser for each source file which needs to be parsed.
- The parser provides SNiFF+ with symbol information for the source file.
- The parser then waits for the next parsing request. It is deactivated by SNiFF+ on termination of its associated

sniff process.
Symbol types
The following symbol types and other language elements are currently available:

comment | macro definition
include statement | class declaration
member variable definition | member function declaration and definition
global function definition | global variable definition
type definition | enumerator definition
user-defined symbols |

The parser also delivers information about global symbol references for function definitions. This information is used by the Cross Referencer. Currently, symbol types must be mapped to existing C/C++ symbol types.